Alteryxで複数ファイルをまとめて読み込む
こんにちは、小澤です。
AlteryxのInput Dataツールでは様々なファイルやDBからデータを取得することが可能です。 その際、例えば日付ごとにファイルを分けているなどといった理由で複数ファイルを同時に読み込みたいことがあるかと思います。
今回はそんな時に便利なワイルドカード指定とDirectoryツール&Dynamic Inputツールの利用について解説したいと思います。
ワイルドカードを使った複数ファイル読み込み
Alteryxでは実は、Input Dataツールで複数のファイルを読み込むことが可能です。 Input Dataツールを使ってファイルを読み込む際の設定としてファイルのパスが記載されています。
このファイルパスの記述について特殊な文字として「*」と「?」が利用可能です。 これらがどのような動きをするのかを理解するために同一フォルダ内に以下のようなファイルがあるとします。
- file.csv
- file1.csv
- file2.csv
- file_1.csv
- file_2.csv
- fairu.csv
これらに対して「*」や「?」をしてした場合の動きを見ていきましょう
「*」を指定した時の動き
まずは「*」を指定した時の動きを見てみます。 「*」は0文字以上の任意の文字を表します。
まずは、以下のように指定してみます。 今回は、読み込んだファイルをわかりやすくするために、「Output File Name as Field」で「File Name Only」を選択しています。
指定の仕方として、「*.csv」となっているので、特定のフォルダ内になる全てのcsvファイルが対象となります。 結果として以下のようなデータが読み込まれます。
続いて、以下のように指定してみます。
結果としては以下のようになります。
「file*.csv」ではfileから始まって、0文字以上の任意の文字が入ったのち、.csvで終わるファイルとなっています。 0文字も含まれるため、file.csvは含まれますが、fairu.csvはfileで始まってないため含まれません。
「?」を指定した時の動き
続いて、「?」を使った時の動きを見てみましょう。 こちらは任意の0文字または1文字を指定するものになります。
以下のような指定で実行してみます。
実行結果は以下のようになります。
fileの後に任意の0文字または1文字ですので、以下のファイルが対象になっています。
- file.csv
- file1.csv
- file2.csv
間に2文字以上含まれるものに関しては対象外となっています。
同様にfile_?.csvとした場合は
- file_1.csv
- file_2.csv
が対象となります。
DirectoryツールとDynamic Inputツールの組み合わせ
続いては、より細かな指定をしたい場合の方法をみていきましょう。 これには、DirectoryツールとDynamic Inputツールを組み合わせて利用します。
まずはDirectoryツールの動きを見てみましょう。
このツールは特定のフォルダ内のファイル一覧を取得します。 読み込み対象のフォルダを指定すると以下のように結果を取得できます。
ファイル名の他にも作成日やファイルサイズなどの情報が取得可能です。
さて、このツールを使ってファイルリストを取得するとその後のワークフローで様々な条件でファイルを絞り込むことが可能です。 RegExツールを使ってファイル名を正規表現で指定してもいいですし、ファイルサイズや更新日を使って絞り込むことも可能です。
こうして絞り込んだファイルリストにあるファイルからデータを取得するにはDynamic Inputツールを利用します。
Dynamic Inputツールでは、他のツールの出力を使ってファイルを読み込むツールです。 Directoryツールで取得したのち、必要なもののみ絞り込んだファイルリストをこのツールに渡すことで対象となるファイルを一括で読み込むことができます。
設定値は以下のようしています。
ここでは、ファイルのフルパスをDirectoryツールから受け取った値で更新するように設定しています。 Dynamic Inputツールの詳細については、以下で解説していますのでそちらあわせてご覧ください。
おわりに
今回は、Alteryxで特定条件を満たす複数ファイルを同時に読み込む方法を解説しました。 これらを利用することですでにある複数ファイルをうまいことまとめて読み込むことができる他、特定の規則に従って増えていくファイルに対応することも可能になるかと思います。
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。